home *** CD-ROM | disk | FTP | other *** search
Wrap
SSSSRRRROOOOTTTT((((3333SSSS)))) SSSSRRRROOOOTTTT((((3333SSSS)))) NNNNAAAAMMMMEEEE SSSSRRRROOOOTTTT, DDDDRRRROOOOTTTT, CCCCRRRROOOOTTTT, ZZZZRRRROOOOTTTT - Applies a real plane rotation or complex coordinate rotation SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS Single precision Fortran: CCCCAAAALLLLLLLL SSSSRRRROOOOTTTT ((((_n,,,, _x,,,, _i_n_c_x,,,, _y,,,, _i_n_c_y,,,, _c,,,, _s)))) C/C++: ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd ssssrrrroooottttmmmm ((((iiiinnnntttt _n,,,, ffffllllooooaaaatttt *_x,,,, iiiinnnntttt _i_n_c_x,,,, ffffllllooooaaaatttt *_y,,,, iiiinnnntttt _i_n_c_y,,,, ffffllllooooaaaatttt _c,,,, ffffllllooooaaaatttt _s))));;;; Double precision Fortran: CCCCAAAALLLLLLLL DDDDRRRROOOOTTTT _x,,,, _i_n_c_x,,,, _y,,,, _i_n_c_y,,,, _c,,,, _s)))) C/C++: ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd ddddrrrrooootttt ((((iiiinnnntttt _n,,,, ddddoooouuuubbbblllleeee *_x,,,, iiiinnnntttt _i_n_c_x,,,, ddddoooouuuubbbblllleeee *_y,,,, iiiinnnntttt _i_n_c_y,,,, ddddoooouuuubbbblllleeee _c,,,, ddddoooouuuubbbblllleeee _s))));;;; Single precision complex Fortran: CCCCAAAALLLLLLLL CCCCRRRROOOOTTTT ((((_n,,,, _x,,,, _i_n_c_x,,,, _y,,,, _i_n_c_y,,,, _c,,,, _s)))) C/C++: ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd ccccrrrrooootttt ((((iiiinnnntttt _n,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_x,,,, iiiinnnntttt _i_n_c_x,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_y,,,, iiiinnnntttt _i_n_c_y,,,, ffffllllooooaaaatttt _c,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_s))));;;; C/C++ STL: ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>> ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd ccccrrrrooootttt ((((iiiinnnntttt _n,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_x,,,, iiiinnnntttt _i_n_c_x,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_y,,,, iiiinnnntttt _i_n_c_y,,,, ffffllllooooaaaatttt _c,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_s))));;;; Double precision complex Fortran: CCCCAAAALLLLLLLL ZZZZRRRROOOOTTTT _n,,,, _x,,,, _i_n_c_x,,,, _y,,,, _i_n_c_y,,,, _c,,,, _s)))) C/C++: ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd zzzzrrrrooootttt ((((iiiinnnntttt _n,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_x,,,, iiiinnnntttt _i_n_c_x,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_y,,,, iiiinnnntttt _i_n_c_y,,,, ddddoooouuuubbbblllleeee _c,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_s))));;;; PPPPaaaaggggeeee 1111 SSSSRRRROOOOTTTT((((3333SSSS)))) SSSSRRRROOOOTTTT((((3333SSSS)))) C/C++ STL: ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>> ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd zzzzrrrrooootttt ((((iiiinnnntttt _n,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_x,,,, iiiinnnntttt _i_n_c_x,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_y,,,, iiiinnnntttt _i_n_c_y,,,, ddddoooouuuubbbblllleeee _c,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_s))));;;; IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN These routines are part of the SCSL Scientific Library and can be loaded using either the ----llllssssccccssss or the ----llllssssccccssss____mmmmpppp option. The ----llllssssccccssss____mmmmpppp option directs the linker to use the multi-processor version of the library. When linking to SCSL with ----llllssssccccssss or ----llllssssccccssss____mmmmpppp, the default integer size is 4 bytes (32 bits). Another version of SCSL is available in which integers are 8 bytes (64 bits). This version allows the user access to larger memory sizes and helps when porting legacy Cray codes. It can be loaded by using the ----llllssssccccssss____iiii8888 option or the ----llllssssccccssss____iiii8888____mmmmpppp option. A program may use only one of the two versions; 4-byte integer and 8-byte integer library calls cannot be mixed. The C and C++ prototypes shown above are appropriate for the 4-byte integer version of SCSL. When using the 8-byte integer version, the variables of type iiiinnnntttt become lllloooonnnngggg lllloooonnnngggg and the <<<<ssssccccssssllll____bbbbllllaaaassss____iiii8888....hhhh>>>> header file should be included. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN SSSSRRRROOOOTTTT/DDDDRRRROOOOTTTT applies a plane rotation matrix to a real sequence of ordered pairs: (_x_i, _y_i), for all _i = 1, 2, ..., _n. CCCCRRRROOOOTTTT/ZZZZRRRROOOOTTTT applies a complex coordinate rotation to a complex sequence of ordered pairs. These routines have the following arguments: _n Integer. (input) Number of ordered pairs (planar points in SSSSRRRROOOOTTTT) to be rotated. If _n <= 0, these routines return without computation. _x Array of dimension (_n-1) * |_i_n_c_x| + 1. (input and output) SSSSRRRROOOOTTTT: Single precision array. DDDDRRRROOOOTTTT: Double precision array. CCCCRRRROOOOTTTT: Single precision complex array. ZZZZRRRROOOOTTTT: Double precision complex array. On input, array _x contains the _x-coordinate of each planar point to be rotated. On output, array _x contains the _x-coordinate of each rotated planar point. _i_n_c_x Integer. (input) Increment between elements of _x. If _i_n_c_x = 0, the results will be unpredictable. PPPPaaaaggggeeee 2222 SSSSRRRROOOOTTTT((((3333SSSS)))) SSSSRRRROOOOTTTT((((3333SSSS)))) _y Array of dimension (_n-1) * |_i_n_c_y| + 1. (input and output) SSSSRRRROOOOTTTT: Single precision array. DDDDRRRROOOOTTTT: Double precision array. CCCCRRRROOOOTTTT: Single precision complex array. ZZZZRRRROOOOTTTT: Double precision complex array. On input, array _y contains the _y-coordinate of each planar point to be rotated. On output, array _y contains the _y-coordinate of each rotated planar point. _i_n_c_y Integer. (input) Increment between elements of _y. If _i_n_c_y = 0, the results will be unpredictable. _c Cosine of the angle of rotation, usually calculated using SSSSRRRROOOOTTTTGGGG(3S) or CCCCRRRROOOOTTTTGGGG(3S). (input) SSSSRRRROOOOTTTT: Single precision. DDDDRRRROOOOTTTT: Double precision. CCCCRRRROOOOTTTT: Single precision. ZZZZRRRROOOOTTTT: Double precision. _s Sine of the angle of rotation, usually calculated using SSSSRRRROOOOTTTTGGGG. (input) SSSSRRRROOOOTTTT: Single precision. DDDDRRRROOOOTTTT: Double precision. CCCCRRRROOOOTTTT: Single precision complex. ZZZZRRRROOOOTTTT: Double precision complex. NNNNOOOOTTTTEEEESSSS SSSSRRRROOOOTTTT/DDDDRRRROOOOTTTT are Level 1 Basic Linear Algebra Subprograms (Level 1 BLAS). CCCCRRRROOOOTTTT/ZZZZRRRROOOOTTTT are extensions to level 1 BLAS. SSSSRRRROOOOTTTT/DDDDRRRROOOOTTTT applies the following plane rotation to each pair of elements (_x_i, _y_i): _ _ _ _ _ _ | x | | c s | | x | | i | <- | | * | i | | y | |-s c | | y | | i | | | | i | - - - - - - for i = 1,...,n CCCCRRRROOOOTTTT/ZZZZRRRROOOOTTTT applies a complex coordinate rotation to each pair of elements (_x_i, _y_i): _ _ _ _ _ _ | x | | c s | | x | | i | <- | _ | * | i | | y | |-s c | | y | | i | | | | i | PPPPaaaaggggeeee 3333 SSSSRRRROOOOTTTT((((3333SSSS)))) SSSSRRRROOOOTTTT((((3333SSSS)))) - - - - - - _ where s represents the complex conjugate of s. If coefficients _c and _s satisfy _c_2 + |_s|_2 = 1.0, the rotation matrix is orthogonal, and the transformation is called a _G_i_v_e_n_s _p_l_a_n_e _r_o_t_a_t_i_o_n. To calculate the Givens coefficients _c and _s from a two-element vector to determine the angle of rotation, use SSSSRRRROOOOTTTTGGGG(3S) or CCCCRRRROOOOTTTTGGGG(3S). When working backward (_i_n_c_x < 0 or _i_n_c_y < 0), each routine starts at the end of the vector and moves backward, as follows: Fortran: x(1-incx * (n-1)), x(1-incx * (n-2)), ..., x(1) y(1-incy * (n-1)), y(1-incy * (n-2)), ..., y(1) C/C++: x[-incx * (n-1)], x[-incx * (n-2)], ..., x[0] y[-incy * (n-1)], x[-incy * (n-2)], ..., y[0] DDDDaaaattttaaaa TTTTyyyyppppeeeessss The following data types are described in this documentation: TTTTeeeerrrrmmmm UUUUsssseeeedddd DDDDaaaattttaaaa ttttyyyyppppeeee Fortran: Array dimensioned _n xxxx((((nnnn)))) Integer IIIINNNNTTTTEEEEGGGGEEEERRRR (IIIINNNNTTTTEEEEGGGGEEEERRRR****8888 for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]]) Single precision RRRREEEEAAAALLLL Double precision DDDDOOOOUUUUBBBBLLLLEEEE PPPPRRRREEEECCCCIIIISSSSIIIIOOOONNNN Single precision complex CCCCOOOOMMMMPPPPLLLLEEEEXXXX Double precision complex DDDDOOOOUUUUBBBBLLLLEEEE CCCCOOOOMMMMPPPPLLLLEEEEXXXX C/C++: Array dimensioned _n xxxx[[[[_n]]]] PPPPaaaaggggeeee 4444 SSSSRRRROOOOTTTT((((3333SSSS)))) SSSSRRRROOOOTTTT((((3333SSSS)))) Integer iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]]) Single precision ffffllllooooaaaatttt Double precision ddddoooouuuubbbblllleeee Single precision complex ssssccccssssllll____ccccoooommmmpppplllleeeexxxx Double precision complex ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx C++ STL: Array dimensioned _n xxxx[[[[_n]]]] Integer iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]]) Single precision ffffllllooooaaaatttt Double precision ddddoooouuuubbbblllleeee Single precision complex ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> Double precision complex ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> SSSSEEEEEEEE AAAALLLLSSSSOOOO IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL(3S), IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS1111(3S), SSSSRRRROOOOTTTTGGGG(3S), SSSSRRRROOOOTTTTMMMM(3S), SSSSRRRROOOOTTTTMMMMGGGG(3S) IIIINNNNTTTTRRRROOOO____CCCCBBBBLLLLAAAASSSS(3S) for information about using the C interface to Fortran 77 Basic Linear Algebra Subprograms (legacy BLAS) set forth by the Basic Linear Algebra Subprograms Technical Forum. PPPPaaaaggggeeee 5555